/*
 * consola.c
 *
 *  Created on: 21/11/2011
 *      Author: utn_so
 */

#include <string.h>
#include <stdlib.h>
#include <stdio.h>

#include "log.h"
#include "config.h"
#include "nipc.h"

#include "plani.h"
#include "raid.h"
#include "consola.h"


void* atenderConsola(void* params)
{
	nipcMessage 	msg = nipc_initmsg;
	int				retval  = NIPC_ERROR_NONE,
					fdCon = 0,
					ti = 0,
					tf = 0;
	char *			h;

	fdCon = *((int*)params);

	free(params);

	while(retval != NIPC_CONNECTION_LOST)
	{
		retval = nipc_recv(&msg, fdCon);

		if(msg.payloadLength == 0)
		{
			//no hay datos
			return NULL;
		}else{
			//hay datos

			h = strtok(msg.payload, ";");

			if(h == NULL)
			{
				return NULL;
			}else if(*h == 0){
				//dice 0 o sea es consola, esta bien
				h = strchr(msg.payload, ';') + 1;
				switch(msg.type)
				{
					case nuevo_c:
						printf("nuevo planificador conectado: %d\n", *h);
						break;
					case escritura_c:
						printf("se escribio en el disco: %d\n", *h);
						break;
					case lectura_c:
						printf("se leyo en el disco: %d\n", *h);
						break;
					case funcionamiento_c:
						printf("el raid esta en funacionamiento");
						break;
					case sincronizacion_c:
						printf("se sincronizo el disco: %d, tiempo inicio: %d, tiempo fin: %d\n", *h, ti, tf);
						//todo tiempo inicio y fin de sincronizcion
						break;
				}


			}

		}

	}

return NULL;
}
